1. Field of the Invention
This invention relates generally to communications systems and more particularly to managing a data stream on an IP subnet.
2. Discussion of Related Art
A common technique used for receiving data and other manipulation of data is the internet protocol (IP) and subject to the Internet Group Management Protocol (IGMP) standard. In the use of IP to send data, one of the techniques that has developed for the situation in which a number of entities want to receive the data is a technique called multicasting. This technique is an improvement over a unicasting in which each recipient of data receives its data separately or broadcasting where all communication links are tied up with the data. This technique is used so that the entities that want to receive the data receive the data and this is efficiently achieved by using a router that is closest to the subscribers on a subnet in sending the data to the multiple users. Thus, only the bandwidth needed is used.
Set-top boxes may be coupled to the subnet. Such set-top boxes may be useful for driving a television monitor for example and may be useful for translating data for transmission. Thus there are multiple set top boxes connected to a single router on a particular subnet. These various STBs may be subscribing to different streams of data but will receive all of the data on their subnet. A typical stream of data may be a movie or a live sporting event, and, thus may stream data that is continuous and time relevant. That is, the data continues to flow relentlessly.
In such a case a particular set top box may switch to a different channel or group that is desired to be received. This can be described also as subscribing to a different group. The channel being subscribed to, in the terminology of IGMP, is the join group. When a group is joined by an STB it initiates a message indicating that it desires to join that particular group. The router responds by providing that group along the subnet. If the router is not already receiving that particular group, then it sends a message to the router that is driving it to indicate that it needs to receive that group. If that router is not receiving the data, then it needs to similarly send a message backwards to ultimately a source of the particular data. This is achieved by a join message according to the IGMP standard. At the time that a particular STB wants to change groups, it is considered to be leaving one group and joining another.
Thus, at the time that it makes the change it generates a leave message and a join message. The leave message indicates which group is being left. The join message indicates which group is to be joined. This is handled by the router in one of two ways. More recently the most common way has become what is called fast leave. In such cases, the termination of the transmission of the group, which is subject to the leave message, is immediate and the new group joined is also immediate. Thus, the particular STB that is changing causes the multicast router to immediately stop transmitting the first group in response to the leave message and start transmitting the new group. The problem with this is that there may be other set top boxes on the subnet that want to receive that first group. Thus, the change by one set top box to a new group will cause the termination of the transmission of that first group to the subnet and thus the set top box that still desires to receive that first group is no longer receiving the first group. Thus, the set top box that is removing the first group will cause at least some time of interruption of the incoming data for other set-top boxes on that subnet that are subscribed to the first group. The nature of streaming data, for example, is such that the particular data is completely interrupted and lost to the recipient. So, for example, if a live sporting event is being viewed, then that time that is missed is not recoverable by the user of the STB. This is a risk of the fast leave approach.
Prior to the fast leave approach, the more common approach was the standard leave approach which involved sending out a message to the subnet asking if any of the set top boxes there wanted to retain that group that was being terminated. That worked so long as the changing of the set top box only changed to one new group. The problem is that the changing set top box could make multiple changes by the time the router had completely received and reconciled the first requests to know if there were other set top boxes wanting to receive that first group. The result is that the subnet could become overcrowded with data because each new group that was joined would initially begin transmission. The router sends a Query message and waits up to ten seconds before terminating the stream. Because there was roughly a 10 second delay for the termination of each group that was indicated as being left there was an accumulated 10 seconds of changes, each of which would be transmitted simultaneously on the same subnet. If the subnet became overcrowded, none of the data was reliable and would be garbage. In the case of video it may not look like anything or sound like anything that was intelligible. Thus, in effect there was a constraint on the user to only change once every 10 seconds that may be an undesirable or unenforceable type of restriction and this would adversely effect the other set top boxes on the subnet.
One solution to this has been to change the router so that it will only transmit data that does not exceed the bandwidth that is available on the subnet. This may be difficult to achieve because each channel may not be easily determined as to what bandwidth is being occupied by that channel or group. Also, the difficulty in knowing which channel to keep transmitting and which channel to terminate is not based on the actual desired combination of groups. In the case where there are multiple changes or where different subscribers or set top boxes are changing over the same time period it would be impossible to know which of the channels that are actually are desired and the wrong ones could be terminated to control the bandwidth. Thus, although the data that is being provided may be valid it may not be the data that is desired. Also, the desired data may get interrupted. Further, the solution does not solve the problem to the user of the set top box if the router that is being utilized does not have this feature. That solution depends upon the entity that controls the router.
Thus, there is a need in set top boxes for the ability to avoid improper termination while also providing rapid provision of new desired groups on a subnet.